#include <iostream>
#include <algorithm>
using namespace std;
#define maxn 100005
const int INF = 1<<30;

int n,limit;
int x[maxn];

bool check(int length){
	int available=1, cmax=x[0];
	for(int i=0; i<n; i++){
		if(x[i]-cmax >= length){
			available++;
			cmax = x[i];
		}
	}
	if(available >= limit) return true;
	else return false;
}

int main(){
	cin>>n>>limit;
	for(int i=0;i<n;i++)
		cin>>x[i];
	sort(x,x+n);
	int l=0, r=INF;
	while(r-l>1){
		int mid=(l+r)/2;
		if(check(mid)) l=mid;
		else r=mid;
	}
	cout<<l<<endl;
	return 0;
}